1
Aula 7: Aprendizado por Transferência – Aproveitando o Conhecimento
EvoClass-AI002Lecture 7
00:00

Bem-vindo à Aula 7, onde apresentamos Aprendizado por Transferência. Essa técnica envolve reutilizar um modelo de aprendizado profundo já treinado em um conjunto de dados amplo e geral (como o ImageNet) e adaptá-lo para resolver uma nova tarefa específica (como o nosso desafio FoodVision). É essencial para alcançar resultados de ponta de forma eficiente, especialmente quando os conjuntos de dados rotulados são limitados.

1. O Poder dos Pesos Pré-treinados

Redes neurais profundas aprendem características de forma hierárquica. Camadas mais baixas aprendem conceitos fundamentais (arestas, cantos, texturas), enquanto camadas mais profundas combinam essas características em conceitos complexos (olhos, rodas, objetos específicos). A principal observação é que as características fundamentais aprendidas inicialmente são universalmente aplicáveis em quase todos os domínios visuais.

Componentes do Aprendizado por Transferência

  • Tarefa de Origem: Treinamento em 14 milhões de imagens e 1000 categorias (por exemplo, ImageNet).
  • Tarefa-Alvo: Adaptando os pesos para classificar um conjunto de dados muito menor (por exemplo, nossas classes específicas do FoodVision).
  • Componente Aproveitado: A grande maioria dos parâmetros da rede — as camadas de extração de características — é reutilizada diretamente.
Ganho de Eficiência
O aprendizado por transferência reduz drasticamente duas barreiras principais de recursos: Custo Computacional (você evita treinar todo o modelo por dias) e Requisito de Dados (alta precisão pode ser alcançada com centenas, em vez de milhares, de exemplos de treinamento).
train.py
TERMINALbash — pytorch-env
> Ready. Click "Run" to execute.
>
TENSOR INSPECTOR Live

Run code to inspect active tensors
Question 1
What is the primary advantage of using a model pre-trained on ImageNet for a new vision task?
It requires less labeled data than training from scratch.
It completely eliminates the need for any training data.
It guarantees 100% accuracy immediately.
Question 2
In a Transfer Learning workflow, which part of the neural network is typically frozen?
The final Output Layer (Classifier Head).
The Convolutional Base (Feature Extractor layers).
The entire network is usually unfrozen.
Question 3
When replacing the classifier head in PyTorch, what parameter must you first determine from the frozen base?
The batch size of the target data.
The input feature size (the output dimensions of the last convolutional layer).
The total number of model parameters.
Challenge: Adapting the Classifier Head
Designing a new classifier for FoodVision.
You load a ResNet model pre-trained on ImageNet. Its last feature layer outputs a vector of size 512. Your 'FoodVision' project has 7 distinct food classes.
Step 1
What is the required Input Feature size for the new, trainable Linear Layer?
Solution:
The Input Feature size must match the output of the frozen base layer.
Size: 512.
Step 2
What is the PyTorch code snippet to create this new classification layer (assuming the output is named `new_layer`)?
Solution:
The output size of 512 is the input, and the class count 7 is the output.
Code: new_layer = torch.nn.Linear(512, 7)
Step 3
What is the required Output Feature size for the new Linear Layer?
Solution:
The Output Feature size must match the number of target classes.
Size: 7.